package com.anxin.act.model.dao;

import com.anxin.act.model.entity.WfActApprover;
import com.anxin.framework.web.dao.BaseDao;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 工作流审批人配置Dao接口
 *
 * @author jbs
 * @date 2020-03-18
 */
public interface WfActApproverDao extends BaseDao<WfActApprover>{
    /**
     * 查询工作流审批人配置
     *
     * @param id 工作流审批人配置ID
     * @return 工作流审批人配置
     */
    public WfActApprover getById(String id);

    /**
     * 查询工作流审批人配置列表
     *
     * @param wfActApprover 工作流审批人配置
     * @return 工作流审批人配置集合
     */
    public List<WfActApprover> findList(WfActApprover wfActApprover);

    /**
     * 新增工作流审批人配置
     *
     * @param wfActApprover 工作流审批人配置
     * @return 结果
     */
    public int insert(WfActApprover wfActApprover);

    /**
     * 修改工作流审批人配置
     *
     * @param wfActApprover 工作流审批人配置
     * @return 结果
     */
    public int update(WfActApprover wfActApprover);

    /**
     * 删除工作流审批人配置
     *
     * @param id 工作流审批人配置ID
     * @param userId 操作人ID
     * @return 结果
     */
    public int deleteById(@Param("id")String id,@Param("userId")String userId);

    /**
     * 根据节点标识删除节点配置的审批人数据
     * @param actUuid
     * @return
     */
    public int deleteByActUuid(@Param("actUuid") String actUuid);

    /**
     * 根据项目ID查询项目团队成员
     * @return 团队成员用户名集合
     */
    public List<String> findDealTeamByDealId(@Param("dealId") String dealId,@Param("role")String role);

    /**
     * 根据项目ID查询项目团队成员
     * @return 团队成员用户名集合
     */
    public List<String> findDealTeamByCompanyId(@Param("companyId") String dealId,@Param("role")String role);

    /**
     * 根据基金ID查询项目团队成员
     * @return 团队成员用户名集合
     */
    public List<String> findUserByFundTeam(@Param("fundId") String dealId,@Param("role")String role);

    /**
     * 查询项目投资主体-仅查询基金
     * @param dealId 项目ID
     * @return
     */
    public List<String> fundDealInvestment(@Param("dealId")String dealId);

    /**
     * 根据公司ID查询项目ID
     * @param companyId 公司ID
     * @return
     */
    public String findDealIdByCompanyId(@Param("companyId")String companyId);

}
